#ifndef __GRAPHICS_GLVERTEXBUFFER_HPP__
#define __GRAPHICS_GLVERTEXBUFFER_HPP__

#include "IVertexBuffer.hpp"
#include <GL/glew.h>

namespace Graphics
{
	class VertexBufferVBO : public IVertexBuffer
	{
	protected:
		GLuint m_nId;
		Vertex* m_pVerts;
		RevEng::UInt32 m_nCount;

		bool m_bLocked;

	public:
		VertexBufferVBO();
		virtual ~VertexBufferVBO();

		virtual void* Lock();
		virtual void Unlock();

		virtual void SetVertexCount(RevEng::UInt32 Count);
		virtual RevEng::UInt32 GetVertexCount() const;

		GLuint GetId() const;
	};


	inline GLuint VertexBufferVBO::GetId() const
	{
		return m_nId;
	}
}

#endif	//__GRAPHICS_GLVERTEXBUFFER_HPP__
